معمارى مبتنى بر داده |
|
منبع: http://sharghnewspaper.com
داده ها(Data) در برنامه هاى كامپيوترى داراى نقشى بسيار مهم بوده و همواره نحوه ذخيره و بازيابى آنان از مهمترين مباحث در دنياى گسترده نرم افزار بوده و خواهد بود. هدف از ذخيره سازى داده ها، بازيابى آنان در زمان مناسب و با سرعت مطلوب است. روش هاى ذخيره سازى داده ها در بستر زمان، دچار تغيير و تحولات گسترده اى شده و با ظهور پديده اينترنت و ضرورت طراحى و پياده سازى نرم افزار بر روى بستر فوق، وارد مرحله جديدى شده است. در اين مقاله به بررسى معمارى برنامه هاى كامپيوترى با محوريت داده پرداخته و گزينه هاى ذخيره سازى داده ها بررسى مى شود. •ذخيره سازى داده ذخيره سازى داده ها روشى به منظور ذخيره اقلام متفاوتى از اطلاعات در كنار يكديگر با هدف تشكيل يك واحد اطلاعاتى منسجم و يكپارچه است. اقلام اطلاعاتى منفرد، به تنهايى كمتر مورد استفاده قرار مى گيرند. اطلاعات مورد نظر زمانى به عنوان منابع اطلاعاتى با ارزش مطرح خواهند بود كه ما قادر به ذخيره سازى آنان در ساختارى مناسب و همراه با ساير اقلام اطلاعاتى باشيم.براى ذخيره سازى داده ها از روش هاى متعددى استفاده مى شود كه ساده ترين آنها روش غيرساخت يافته است. در اين روش، داده ها داراى هيچ گونه ساختارى نيستند (نظير Memo هاى ساده). اما در روش ساخت يافته - غيررابطه اى داده ها به صورت واحدهــاى مجـــزا قرار مى گيـــرند. سازمــــاندهى واحدهـــا عموماً با توجه به اولويت استقرار آنهــا تعيين مى شود. فايل هاى (CSV (Comma Separated value و يا فايل هايى كه محتويات آنان توسط Tab از يكديگر جدا مى شوند، فايل هــاى صفحـــات گسترده نظير Excel، فايل هاى سرويس دهنده Exchange، فايل هاى Active Directory، فـايل هــاى Indexd sequential access method)ISAM)، نمونه هايى در اين زمينه هستند. روش ديگر سلسله مراتبى است. در اين روش داده ها به صورت يك ساختار درختى سازماندهى مى گردند. هر درخت داراى مجموعه اى از گره بوده كه هر گره خود مى تواند شامل چندين گره ديگر باشد. سندهاى داده XML نمونه اى از اين مورد است. بانك هاى اطلاعاتى رابطه اى روشى مخصوص به خود دارند. در اين روش داده ها در جداولى سازماندهى مى گردند. ستون ها در جدول شامل يك نوع خاص داده بوده و سطرها شامل ركورد خاصى از اطلاعات هستند. جداول مى توانند از طريق ستون هاى خاصى به يكديگر مرتبط شوند تا امكان استفاده از داده هاى مشترك (يكسان) بين آنها فراهم گردد. سرويس دهنده SQL، بانك اطلاعاتى Access و بانك اطلاعاتى Oracle نمونه هايى در اين زمينه است. اما در بانك هاى اطلاعاتى شىء گرا داده ها به صورت مجموعه اى از اشيا سازماندهى مى شوند. نظير Objectivity/DB. •محيط هاى متصل در گذشته به منظور دستيابى به داده ها همواره از يك محيط متصل، استفاده مى گرديد. يك محيط متصل، محيطى است كه كاربر و يا برنامه مورد نظر مى بايست به صورت پيوسته به يك منبع داده متصل باشند. به عنوان مثال كارخانه اى كه نيازمند يك اتصال دائم و هميشگى با سرويس دهنده مربوطه به منظور مديريت و آگاهى از آخرين وضعيت محصولات ورودى و خروجى به انبار مربوطه است. يا يك بنگاه تجارى كه نيازمند يك اتصال دائم به منظور آگاهى از آخرين وضعيت اطلاعاتى در رابطه با تعداد و قيمت سهام است. روش فوق داراى مزاياى زير است: •يك محيط ايمن كه پشتيبانى آن ساده تر خواهد بود. •كنترل همزمانى به سادگى انجام خواهد شد. •داده ها نسبت به ساير روش هاى موجود، بهنگام تر هستند. اما معايبى نيز اين روش دارد از جمله آنكه: •مى بايست يك اتصال پيوسته با شبكه وجود داشته باشد. •توسعه سيستم، داراى چالش هاى خاص خود است. •محيط هاى غيرمتصل همزمان با پيدايش اينترنت، سناريوى عمليات غيرمتصل به امرى عادى تبديل شده است. به موازات افزايش استفاده از دستگاه هاى handheld، رويكرد فوق بسيار متداول و مورد توجه قرار گرفته است.Laptop ، Notebook و ساير كامپيوترهاى قابل حمل، اين امكان را به دست آورده اند كه از برنامه ها حتى در مواردى كه ارتباطى با سرويس دهنده و يا بانك اطلاعاتى وجود ندارد، بتوان استفاده كرد. در اغلب حالات، افراد به صورت كامل در يك محيط متصل و يا غيرمتصل كار نمى كنند، بلكه محيط استفاده شده تلفيقى از دو رويكرد فوق است. يك محيط غيرمتصل، محيطى است كه بر اساس آن كاربر و يا يك برنامه به صورت پيوسته به يك منبع داده مرتبط و متصل نخواهد بود. كاربران موبايل كه با Laptop كار مى كنند، اولين كاربران در محيط هاى غيرمتصل هستند. كاربران مى توانند زير مجموعه اى از داده ها را دريافت و در يك كامپيوتر غيرمتصل مستقر و پس از اعمال تغييرات لازم مجدداً آنان را به محل مركزى ذخيره سازى داده ها، ارسال كنند. به عنوان مثال: در يك سيستم مالياتى، ضرايب مالياتى ممكن است طى يك سال و يا حتى چندين سال يك مرتبه تغيير كنند، بنابراين اصلاح جداول در بانك اطلاعاتى مربوطه، مى تواند به صورت غيرمتصل و در زمان مورد نياز انجام پذيرد.از جمله مزاياى اين روش مى توان به موارد زير اشاره كرد: •قابليت انجام عمليات و فعاليت هاى مورد نياز در زمان دلخواه و ارتباط با منبع داده در زمانى ديگر به منظور پردازش. •ساير كاربران مى توانند از ارتباط استفاده نمايند. (بهينه سازى اتصالات همزمان به يك منبع داده) •بهبود در كارايى و توسعه برنامه. اين روش نيز داراى معايبى است. نظير آنكه: •داده ها همواره بهنگام نخواهند بود. •تغييرات اعمال شده مى تواند باعث بروز تناقص اطلاعاتى شده و مى بايست اقدامات لازم در اين خصوص، پيش بينى گردد. •مدل هاى متفاوت برنامه ها براى دستيابى به داده ها مدل هاى دستيابى به داده، همزمان با تكامل تدريجى كامپيوتر نيز متحول و دگرگون شده است (از به شدت محلى بودن تا به شدت توزيع شده). همزمان با افزايش كاربران و حجم اطلاعات، مدل دستيابى به داده از يك كاربر در رابطه با يك برنامه به چندين كاربر از طريق اينترنت، گسترش پيدا كرده است. آخرين تحول در اين راستا مدل مبتنى بر سرويس هاى وب XML، بر است. تعريف Tire : در يك مدل دستيابى به داده، Tire (رديف- طبقه)، يك سطح منطقى و يا لايه اى است كه عناصر منطقى مربوط به يك برنامه بر روى آن مستقر مى شوند (نه يك tire فيزيكى) طبقات (لايه ها)، مى توانند بر روى يك و يا چندين كامپيوتر و يا حتى Tire فيزيكى، مستقر گردند. تعداد Tire ها به تعداد سطوح بر مى شود (نه تعداد كامپيوترهاى فيزيكى كه سرويس ها را تقسيم كرده اند). اين سطوح عموماً داراى موارد زير است: •: Client-tire لايه فوق، با نام Presentation و يا User Service نيز ناميده شده و شامل بخش رابط كاربر است. •Bussiness Logic Tire : شامل منطقى است كه با منابع داده مرتبط مى شود. اين Tire ميانى (Middle)، شامل بخشى از برنامه است كه با داده ها مرتبط مى شود (مثلاً ايجاد يك ارتباط با منبع داده). لايه فوق، اغلب به صورت فيزيكى و در تمام لايه ها پياده سازى مى شود. مثلاً به عنوان يك Stored Procedure در كنار منبع داده، يك كلاس همراه يك سرويس دهنده برنامه و يا حتى كدهاى همراه برنامه سرويس گيرنده. •Data Service Tire : لايه فوق، شامل داده هايى است كه Bussiness Logic از آنان در برنامه ها استفاده مى كند. •Interoperability : شامل منطقى است كه امكان ارتباط بين برنامه هاى متعدد بر روى سيستم هاى عامل متفاوت و يا انواع متفاوت داده ها را فراهم مى كند. مثلاً سرويس هاى وب XML مى توانند توسط هر نوع سيستم عامل، ميزبان و استفاده گردند. •مزاياى Tires مهمترين مزيت افزودن Tire، قابليت گسترش و توسعه يك برنامه است. هر Tire اضافه، امكان افزودن كاربران بيشتر و ايزوله كردن يك سطح از منطق برنامه را فراهم مى نمايد. ايزوله كردن منطق، اين امكان را فراهم مى كند كه تغييرات لازم در يك برنامه بدون نياز به اعمال تغييرات در ساير Tire ها، صورت پذيرد. مثلاً در يك برنامه One-tire اعمال تغيير در هر سطح از منطق برنامه، مستلزم ترجمه مجدد برنامه و توزيع آن خواهد بود. •تكامل مدل هاى دستيابى مدل هاى متفاوت دستيابى به داده به مرور زمان دچار تحول شده است. • One _Tire : مدل فوق، عموماً شامل يك كاربر بوده و تمامى سه لايه در يك كامپيوتر مستقر (لايه بندى) مى شوند. مثلاً يك بانك اطلاعاتى شامل يك كاربر. مزايا: چون هر چيز در يك محل قرار مى گيرد تمام عناصر به سادگى قابل دستيابى خواهند بود. معايب: بهنگام سازى برنامه ها مستلزم كدهاى اوليه برنامه بوده و پس از اعمال تغييرات و ترجمه مجدد مى بايست برنامه براى هر يك از كاربران ارسال مجدد گردد. در اين مدل قابليت واقعى براى گسترش وجود ندارد. •Two-Tire : لايه User و Business Logic در يك Tire قرار گرفته و Data Service در لايه دوم قرار خواهد گرفت. مدل فوق عموماً شامل دو و يا بيش از دو كامپيوتر است. مثلاً يك بانك اطلاعاتى كه Businesses Logic بين دو Tire تقسيم مى شود. بخشى از منطق در برنامه سرويس گيرنده و بخشى ديگر به عنوان Stored procedure در Data Tire ذخيره مى شود. مزايا: برخى از جداسازى ها را ارائه مى نمايد. معايب: توسعه مشكل خواهد بود، چراكه سرويس گيرندگان به صورت يك Fat Client مطرح و شامل لايه هاى Presentation و Business Logic هستند. توزيع و پشتيبانى نرم افزار يكى ديگر از مشكلات موجود در اين مدل است. •: Three-Tire هر سرويس در يك لايه مجزا قرار مى گيرد. Bussiness Logic در يك Middle Tire جديد مستقر مى شود. مزايا: نوع مطلوبى از جداسازى را ايجاد نموده و حجم سرويس گيرنده نازك (لاغر!) مى شود. در اين مدل سرويس گيرنده به صورت thin client بوده كه صرفاً شامل منطق و يا لايه Presentation است. معايب: مديريت آن به مراتب پيچيده تر بوده و از لحاظ امنيتى انعطاف و توسعه پذيرى مدل Tire - N را ندارد. • Tire- N : يك بانك اطلاعاتى گسترده كه داراى سرويس گيرندگان متعدد از طريق يك سرويس دهنده برنامه است. Tire جديد مى توانند با توجه به ضرورت هاى منطقى مورد نياز، اضافه گردند. مزايا: امكان اجراى برنامه هاى متعدد بر روى سيستم هاى عامل گوناگون به منظور ارتباط با كاربر و داده فراهم مى شود. معايب: مسائل مربوط به امنيت داراى چالش هاى خاص خود است.( RPC(Remote Procedure Call نمى تواند از طريق فايروال ها، عبور داده شوند. • Tire with web Interface - N : سرويس ها بين اينترنت و اينترانت از طريق Tire اضافه سرويس دهندگان اختصاصى اضافه در شبكه، توزيع مى شود. مزايا: هزينه به كارگيرى نرم افزار بر روى سرويس گيرنده به سمت صفر ميل مى كند. بهنگام سازى صرفاً بر روى سرويس دهندگان WEB و Application انجام خواهد شد. پروتكل HTTP امكان عبور از طريق فايروال را خواهد داشت. معايب: داراى چالش هاى امنيتى خاص خود است. لازم است به اين نكته اشاره گردد كه با افزايش Tire ها، از يك طرف امكان گسترش برنامه بيشتر شده و از طرف ديگر پيچيدگى مدل دستيابى به داده ها، افزايش مى يابد.
|